#define _CRT_SECURE_NO_WARNINGS 1
//
//#include <algorithm>
//#include <iostream>
//#include <vector>
//using namespace std;
//
//long long sum(long long a ,long long b)
//{
//	return a + b;
//}
//void func()
//{
//	long long n, x, y, z, T;
//	cin >> n >> x >> y >> z >> T ;
//	long long* a1 = new long long[100];
//	long long* a2 = new long long[100];
//	long long* a3 = new long long[100];
//	while (--n)
//	{
//		for (long long i = 0; i < n; i++)
//		{
//			cin >> a1[i] >> a2[i] >> a3[i];
//		}
//	}
//	long long* sum = new long long[100000];
//	for (long long i = 0; i < n; i++)
//	{
//		sum[i] = a1[i] + a2[i];
//	}
//	long long c = x + y;
//	vector <long long> h(100000);
//	for (long long i = 0; i < n; i++)
//	{
//		if (c < sum[i] && z + T >= a3[i])
//		{
//			h[i] = sum[i];
//		}
//	}
//	long long max = *max_element(h.begin(), h.end());
//	cout << max << endl;
//}
//long long main()
//{
//	func();
//	return 0;
//}

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

long long sum(long long a, long long b)
{
    return a + b;
}

void func()
{
    long long n, x, y, z, T;
    cin >> n >> x >> y >> z >> T;
    vector<long long> a1(n);
    vector<long long> a2(n);
    vector<long long> a3(n);
    for (long long i = 0; i < n; i++)
    {
        cin >> a1[i] >> a2[i] >> a3[i];
    }
    vector<long long> sum(n);
    for (long long i = 0; i < n; i++)
    {
        sum[i] = a1[i] + a2[i];
    }
    long long c = x + y;
    vector<long long> h;
    for (long long i = 0; i < n; i++)
    {
        if (c < sum[i] && z + T >= a3[i])
        {
            h.push_back(sum[i]);
        }
    }
    long long max = 0;
    if (!h.empty())
    {
        max = *max_element(h.begin(), h.end());
    }
    cout << max << endl;
}

int  main()
{
    func();
    return 0;
}